package com.osdp.sc.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.osdp.sc.entity.ScRolePosition;
import com.osdp.sc.vo.ScRolePositionVo;

import java.util.List;

/**
 * 岗位与角色关系管理
 */
public interface IScRolePositionService extends IService<ScRolePosition> {
    /**
     * 根据用户ID查询用户角色关系对象
     * @param positionId String
     * @return List<UcPositionRoleVo>
     */
    List<ScRolePositionVo> queryPositionRoleByPositionId(String positionId);

    /**
     * 根据用户ID查询对应的角色id
     * @param positionId String
     * @return List<String>
     */
    List<String> queryRoleIdByPositionId(String positionId);

    /**
     * 批量保存修改用户与角色关系
     * @param positionId String
     * @param roleIds List<String>
     * @return boolean
     */
    boolean batachSaveOrUpdatePositionRoleByPositionId(String positionId, List<String> roleIds);

    /**
     * 根据用户ID删除用户与角色的关系
     * @param positionId
     * @return boolean
     */
    boolean deleteByPositionId(String positionId);

    /**
     * 根据角色ID删除用户与角色的关系
     * @param roleId String
     * @return
     */
    boolean deleteByRoleId(String roleId);

    /**
     * 根据角色ID查询用户角色信息
     * @param roleId String
     * @return
     */
    List<ScRolePositionVo> queryPositionRoleByRoleId(String roleId);
    /**
     * 根据角色ID和多个用户ID保存用户与角色关系
     * @param roleId String
     * @param positionIds List<String>
     * @return
     */
    boolean batachSaveOrUpdatePositionRoleByRoleId(String roleId, List<String> positionIds);
}
